package com.dmjj.cadcommon.base;

import java.io.Serializable;
import java.util.List;

/**
 * Description: 服务类基类 <br /> 
 * Project: meirenhui <br />
 * ClassName: BaseService <br />
 * Copyright: Copyright (c) 2017 deshang<br />
 * @author bushy
 * @version 1.0 2017年10月11日下午2:46:52
 */
public interface BaseService<T, PK extends Serializable> {
	
	/**
	 * 保存一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:42:03
	 * @param entity
	 * @return
	 */
	PK save(T entity);
	
	/**
	 * 根据条件查询列表
	 * @author bushy
	 * @createDate 2017年10月11日下午1:48:17
	 * @param entity
	 * @return
	 */
	List<T> listByCondition(T entity);
	
	/**
	 * 查询记录列表，带分页
	 * @author bushy
	 * @createDate 2017年10月19日下午4:57:51
	 * @param entity
	 * @param pageNum
	 * @return
	 */
	List<T> list4Page(T entity, Integer pageNum, Integer... pageSize);

	/**
	 * @Description: 查询记录带分页
	 * @return
	 * @author 王丽凯
	 * @date 2018/12/25
	 */
	List list4PageNew(T entity, Integer pageNum, Integer... pageSize);

	/**
	 * 根据Id查询一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:45:30
	 * @param id
	 * @return
	 */
	T queryOneByPk(PK id);
	
	/**
	 * 删除一条记录
	 * @author bushy
	 * @createDate 2017年10月11日下午1:46:31
	 * @param id
	 * @return
	 */
	Integer delete(PK id);

	/**
	 * @Description: 编辑信息
	 * @author 王丽凯
	 * @date 2018/12/27
	 */
	PK edit(T entity);
}
